New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@solid-primitives/immutable

Package Overview
Dependencies
Maintainers
3
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@solid-primitives/immutable

Functional programming helpers for making non-mutating changes to data. Keeping it immutable.

  • 0.1.10
  • Source
  • npm
  • Socket score

Version published
Maintainers
3
Created
Source

Solid Primitives Immutable

@solid-primitives/immutable

turborepo size version stage

Functional programming helpers for making non-mutating changes to data. Keeping it immutable.

Installation

npm install @solid-primitives/immutable
# or
yarn add @solid-primitives/immutable

How to use it

import { pick } from "@solid-primitives/immutable";

const original = { foo: 123, bar: "baz" };
const newObj = pick(original, "foo");
original; // { foo: 123, bar: "baz" }
newObj; // { foo: 123 }

Use it for changing signals:

import { push, update } from "@solid-primitives/immutable";

const [list, setList] = createSignal([1, 2, 3]);
setList(p => push(p, 4));

const [user, setUser] = createSignal({
  name: "John",
  street: { name: "Kingston Cei", number: 24 },
});
setUser(p => update(p, "street", "number", 64));

List of functions:

Copying

  • shallowArrayCopy - make shallow copy of an array
  • shallowObjectCopy - make shallow copy of an object
  • shallowCopy - make shallow copy of an array/object
  • withArrayCopy - apply mutations to the an array without changing the original
  • withObjectCopy - apply mutations to the an object without changing the original
  • withCopy - apply mutations to the an object/array without changing the original

Array

  • push - non-mutating Array.prototype.push()
  • drop - non-mutating function that drops n items from the array start
  • dropRight - non-mutating function that drops n items from the array end
  • filterOut - standalone Array.prototype.filter() that filters out passed item
  • filter - standalone Array.prototype.filter()
  • sort - non-mutating Array.prototype.sort() as a standalone function
  • sortBy - Sort an array by object key, or multiple keys
  • map - standalone Array.prototype.map() function
  • slice - standalone Array.prototype.slice() function
  • splice - non-mutating Array.prototype.splice() as a standalone function
  • fill - non-mutating Array.prototype.fill() as a standalone function
  • concat - Creates a new array concatenating array with any additional arrays and/or values.
  • remove - Remove item from array
  • removeItems - Remove multiple items from an array
  • flatten - Flattens a nested array into a one-level array
  • filterInstance - Flattens a nested array into a one-level array
  • filterOutInstance - Flattens a nested array into a one-level array

Object

  • omit - Create a new subset object without the provided keys
  • pick - Create a new subset object with only the provided keys
  • split - Split object into multiple subset objects.
  • merge - Merges multiple objects into a single one.

Object/Array

  • get - Get a single property value of an object by specifying a path to it.
  • update - Change single value in an object by key, or series of recursing keys.

Number

  • add - a + b + c + ... (works for numbers or strings)
  • substract - a - b - c - ...
  • multiply - a * b * c * ...
  • divide - a / b / c / ...
  • power - a ** b ** c ** ...
  • clamp - clamp a number value between two other values

Changelog

See CHANGELOG.md

Keywords

FAQs

Package last updated on 31 Mar 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc